The present invention relates generally to control devices with haptic feedback and in particular to systems and methods for reducing limit cycle oscillations that occur in such devices in the presence of displacement quantization.
Haptic feedback, which includes tactile and impulse sensations, has been implemented in user-manipulable control devices such as knobs, joysticks, game controllers, and so on. Control devices with haptic feedback provide various force and/or tactile sensations in response to user manipulation of the controls. These sensations can include vibrations of the housing of the control device and/or vibrations or other forces exerted on the knob, joystick, or other user manipulable control (generally referred to as a manipulandum) to resist or accelerate motion of the manipulandum. Haptic feedback can enhance realism in simulations or enhance a user""s ability to control an object.
Haptic feedback sensations in a control device are commonly generated by including in the device one or more actuators that can produce forces on the housing the manipulandum. The actuators can be controlled by a processor located either in the device itself or in a remote host with which the device communicates. In some such devices, the processor is provided with haptic parameters for computing forces to be applied to the device and for converting those forces to actuator signals, and the manipulandum is equipped with one or more position encoders that periodically report updated position data to the processor. The position data can be used in determining the force to be applied.
In general, the processor operates in a servo loop. In each servo cycle, the processor samples the position data provided by the encoder(s), computes the force to be applied using the position data and the haptic parameters, and generates a corresponding control signal. The actuator receives the signal and applies this force continuously until the next update. A servo rate of 1 kHz is typical.
One common haptic effect is simulation of contact with a wall, which may occur to indicate the end of a range of motion (e.g., of a volume control knob), an impact with a wall during motion of a simulated object (e.g., a simulated vehicle in a video game), or under various other conditions. For instance, in a system with one degree of freedom, if the coordinate x represents the manipulandum position, a wall can be located at a point x=x0. In general, the stiffness of a wall is not infinite; the wall is modeled as a spring obeying Hooke""s law. Thus, for a wall at x=x0, the force on the manipulandum can be characterized as F=0 for xxe2x89xa6x0, and F=K(xxe2x88x92x0) for x greater than x0, for some spring constant K. A large spring constant K corresponds to a stiffer wall and is generally desirable, although the stiffness of virtual walls is limited by various factors, such as the ability of actuators to generate large forces. For systems with more than one degree of freedom, planar or non-planar walls can also be modeled using similar principles.
Because the position of the manipulandum is sampled at discrete times, the wall force is generally not applied until after a user has moved the manipulandum some distance past the wall position (i.e., into the wall). Once applied, the wall force tends to push the manipulandum back through the wall position. This wall force is countered by the user""s bias force against it, which pushes the manipulandum back toward and through the wall position. This can result in oscillations (referred to as xe2x80x9climit cycle oscillationsxe2x80x9d because the oscillation properties are largely independent of the initial conditions) around the wall position, with the knob moving a short distance back and forth. Such oscillations may be perceptible to the user as undesirable tactile vibrations of the manipulandum and/or as audible noise, depending on the frequency and amplitude of the oscillations. This effect can be exacerbated by the fact that most position encoders in common use are quantized, i.e., the encoder reports the manipulandum position as one of a number of discrete values (xe2x80x9ccountsxe2x80x9d), while the actual position of the manipulandum is generally somewhere between two adjacent counts.
Several techniques for reducing limit cycle oscillations at wall contact have been proposed. One option is to use position encoders with higher resolution (i.e., shorter distance between counts). However, the cost of encoders increases with resolution, making such an option impractical in applications where cost is an important consideration.
Another option is to use more powerful processors that can operate at an increased servo rate, but this option is not always available. In some applications, the choice of processors is limited by cost, industry pre-qualification requirements, or other considerations, making it difficult to simply select a more powerful processor. Even when a faster processor is an option, increasing the sampling rate can cause the frequency of limit cycle oscillations to increase into a range where oscillations of a given amplitude are more perceptible to the user, thereby exacerbating the problem. Moreover, for a given encoder resolution, there is a point beyond which increasing the sampling rate has little effect on the limit cycle oscillations.
In addition to these hardware-based options, various control algorithms have been proposed to reduce limit cycle oscillations. For instance, in theory, the desired force can be computed by simulating system behavior one half of a servo cycle ahead of the current sampling time. This, however, requires accurate knowledge of both position and velocity of the manipulandum. In practice, during oscillations, knowledge of position is limited by the encoder resolution and reliable velocity measurements are unavailable because an oscillating manipulandum changes direction and speed too rapidly for existing systems to reliably measure its velocity. Thus, such control algorithms are generally difficult to implement.
It would be desirable to compute forces for a haptic manipulandum with displacement quantization in a manner that reduces limit cycle oscillations, without requiring an increase in the sampling rate or other constraints of a design.
According to embodiments of the present invention, limit cycle oscillations of a haptic device can be reduced by applying a net force that combines a primary force computed by conventional methods in a main haptic loop and a secondary force computed so as to cancel or minimize the oscillations. The secondary force can be, e.g., an impulse force applied immediately after detecting that the manipulandum has passed through a wall position, or a periodically varying force with an appropriate phase shift relative to the (oscillating) manipulandum position. In one embodiment, the secondary force is computed using a damping circuit that operates in a damping loop with a higher updating rate than the main haptic loop.
The following detailed description together with the accompanying drawings will provide a better understanding of the nature and advantages of the present invention.